package main

import (
	"fmt"

	"gopkg.in/macaron.v1"
)

func main() {
	m := macaron.Classic()
	// 注册一个路由，注意：只能顺序的从前面的处理器中赋值，在后面的处理器中取出来
	m.Get("/", func(ctx *macaron.Context) {
		// 第一个匿名函数作为处理器，赋值变量
		ctx.Data["Num"] = 1
	}, func(ctx *macaron.Context) {
		// 第二个处理器取到值后进行数字断言再赋值
		// 取出值再进行类型断言的作用是再次变为int类型
		ctx.Data["Num"] = ctx.Data["Num"].(int) + 3
	}, func(ctx *macaron.Context) string {
		// 第三个处理器返回值(字符串)，浏览器中返回3
		return fmt.Sprintf("Num: %d", ctx.Data["Num"])
	})

	m.Run()
}
